package algorithm;

import java.util.ArrayList;
import java.util.List;

public class leetcode_0017 {
    public static void main(String[] args) {

    }
    public List<String> letterCombinations(String digits) {
        List<String> list=new ArrayList<>();
        if(digits.equals("")) ;
        else if(digits.length()==1) {
            char[] list_1=digits.toCharArray();
            onealpha(list_1[0]-'0',list);
        }

        else if(digits.length()==2){
            char[] list_1=digits.toCharArray();
            List<String> list_2=new ArrayList<>();
            List<String> list_3=new ArrayList<>();
            onealpha(list_1[0]-'0',list_2);
            onealpha(list_1[1]-'0',list_3);
            for(int i=0;i<list_2.size();++i){
                for(int j=0;j<list_3.size();++j){
                    String s=list_2.get(i)+list_3.get(j);
                    list.add(s);
                }
            }

        }
        else if(digits.length()==3){
            char[] list_1=digits.toCharArray();
            List<String> list_2=new ArrayList<>();
            List<String> list_3=new ArrayList<>();
            List<String> list_4=new ArrayList<>();
            onealpha(list_1[0]-'0',list_2);
            onealpha(list_1[1]-'0',list_3);
            onealpha(list_1[2]-'0',list_4);
            for(int i=0;i<list_2.size();++i){
                for(int j=0;j<list_3.size();++j){
                    for(int k=0;k<list_4.size();++k){
                    String s=list_2.get(i)+list_3.get(j)+list_4.get(k);
                    list.add(s);}
                }
            }
        }
        else{
            char[] list_1=digits.toCharArray();
            List<String> list_2=new ArrayList<>();
            List<String> list_3=new ArrayList<>();
            List<String> list_4=new ArrayList<>();
            List<String> list_5=new ArrayList<>();
            onealpha(list_1[3]-'0',list_5);
            onealpha(list_1[0]-'0',list_2);
            onealpha(list_1[1]-'0',list_3);
            onealpha(list_1[2]-'0',list_4);
            for(int i=0;i<list_2.size();++i){
                for(int j=0;j<list_3.size();++j){
                    for(int k=0;k<list_4.size();++k){
                        for(int l=0;l<list_5.size();++l){
                        String s=list_2.get(i)+list_3.get(j)+list_4.get(k)+list_5.get(l);
                        list.add(s);}
                    }
                }
            }
        }
        return list;
    }
    public List<String> onealpha(int a,List<String> list){
        if(a==2){
            list.add("a");list.add("b");list.add("c");
            return list;
        }
        else if(a==3){
            list.add("d");list.add("e");list.add("f");
            return list;
        }
        else if(a==4){
            list.add("g");list.add("h");list.add("i");
            return list;
        }
        else if(a==5){
            list.add("j");list.add("k");list.add("l");
            return list;
        }
        else if(a==6){
            list.add("m");list.add("n");list.add("o");
            return list;
        }
        else if(a==7){
            list.add("p");list.add("q");list.add("r");list.add("s");
            return list;
        }
        else if(a==8){
            list.add("t");list.add("u");list.add("v");
            return list;
        }
        else{
            list.add("w");list.add("x");list.add("y");list.add("z");
            return list;
        }
    }
}
